home *** CD-ROM | disk | FTP | other *** search
/ Mission 3 / Mission 3.zip / Mission 3.iso / zugabe / va45 / visual45 / objects / srchexec.s < prev   
Text File  |  1998-09-06  |  43KB  |  1,393 lines

  1. ;------------------------------------------------------------------------------
  2. ; Method name : -
  3. ; Asm label   : GWVA_ROOT_PRG_SEARCH_AND_EXEC_METHOD
  4. ; Description : Fonction de distribution de méthode
  5. ;
  6. ; in  : a0.l = pointeur sur l'objet
  7. ; in  : d0-d2/a0-a2 : paramètres passés en entrée de la méthode trouvée
  8. ; in  : d4.l = nom de la méthode
  9. ; in  : d5.w = mode d'activation
  10. ;       GWVA_MODE_CLASS_METHOD_SEARCH_ALL_FIRST_SON : distribue à tous les fils de cet objet sans tester CONSUMED or NOT
  11. ;       GWVA_MODE_CLASS_METHOD_SEARCH_AFS_WITH_HANDLE : distribue à tous les fils fenêtre de cet objet sans tester CONSUMED or NOT et positionne leur handle GEM dans d0 pour forcer la prise en compte (CLICK)
  12. ;       GWVA_MODE_CLASS_METHOD_SEARCH_VISUAL_EVENT : distribue un évènement généré par le VA
  13. ;       GWVA_MODE_CLASS_METHOD_SEARCH_OTHER_OBJ : Appel de méthode d'un objet autre que l'objet courant (class MAX forcément)
  14. ;       GWVA_MODE_CLASS_METHOD_SEARCH_DIFF_METH_SAME_CLASS : Appel d'une méthode différente de la même classe (cherche à partir de i)
  15. ;       GWVA_MODE_CLASS_METHOD_SEARCH_INHERITED : Appel de la même méthode que courante mais classe i-1 (classe dont on hérite)
  16. ;
  17. ; out : d6.w = code de retour
  18. ;       GWVA_SEARCH_EXEC_CONSUMED        (pas pour ALL_FIRST_SON)
  19. ;       GWVA_SEARCH_EXEC_CONSUMED_BY_ONE_OBJECT    (pour ALL_FIRST_SON)
  20. ;       GWVA_SEARCH_EXEC_NOT_CONSUMED
  21. ;       GWVA_SEARCH_EXEC_NOT_FOUND
  22. ;       GWVA_SEARCH_EXEC_NO_DEST_FOUND
  23. ;       GWVA_SEARCH_EXEC_USER_ERROR    ; erreur du programmeur
  24. ; out : d7.w = code d'erreur
  25. ;
  26. ; 19/07/98 : Création
  27. ;------------------------------------------------------------------------------
  28.  
  29. gwva_exec_method:            ; in : a4.l ptr struct methode
  30.  
  31.     moveq #GWVA_SEARCH_EXEC_NOT_FOUND,d6    ; par défaut on ne la trouve pas
  32.  
  33.     save.l d0-d2/d4-d5/a0-a2
  34.     jsr ([GWVA_OBJ_METHODLIST_ITEM_ROUTINE,a4])    ; -> d6,d7
  35.     load.l d0-d2/d4-d5/a0-a2
  36.  
  37.     ifd OPT_GWVA_DEBUG_ERROR
  38.  
  39.     cmp.w #GWVA_PRGRET_CONSUMED,d6
  40.     beq.s .no_error
  41.     cmp.w #GWVA_PRGRET_NOT_CONSUMED,d6
  42.     beq.s .no_error
  43.     GWVA_PROGRAMMER_ERROR    GWVA_ASCII_ERROR_RETURN_D6
  44. .no_error:
  45.     endc    ; ifd OPT_GWVA_DEBUG_ERROR
  46.     rts
  47.  
  48.             *---------------
  49.  
  50. GWVA_ROOT_PRG_SEARCH_AND_EXEC_METHOD:
  51. exec3:
  52.     ifd MDL_GEM
  53.  
  54.     ifd OPT_GWVA_DEBUG_SEARCH_EXEC
  55.     add.w #1,GWVA_DEBUG_STACK_LEVEL_COUNTER
  56.     endc    ; OPT_GWVA_DEBUG_SEARCH_EXEC
  57.  
  58.     cmp.l #GWVA_ROOT_STACK_TOP+9*4*2,sp    ; 9*4 mini sinon on peut même pas faire
  59.     bgt.s .no_stack_overflow    ; d'édition d'erreur sans écraser qqchose
  60.  
  61.     save.l d0-d2/d4-d5/a0-a2
  62.     lea GWVA_ROOT_ALERT_STACK_OVERFLOW,a0
  63.     move #1,d0
  64.     bsr GWVA_ROOT_PRG_ALERT_BOX
  65.     load.l d0-d2/d4-d5/a0-a2
  66. .no_stack_overflow:
  67.  
  68.     endc    ; ifd MDL_GEM
  69.  
  70.     ifd OPT_GWVA_DEBUG_ERROR
  71.     bsr GWVA_ROOT_TEST_IF_OBJECT_CREATED
  72.     cmp.w #GWVA_NO_ERROR_GENERIC,d7
  73.     beq.s .objet_cree
  74.     GWVA_PROGRAMMER_ERROR    GWVA_ASCII_ERROR_OBJ_HANDLE
  75.     moveq #GWVA_SEARCH_EXEC_NO_DEST_FOUND,d6    ; défense
  76.     rts
  77. .objet_cree:
  78.     endc    ; OPT_GWVA_DEBUG_ERROR
  79.  
  80. ;---------------------------------------------------------------------------------------
  81.     cmp.w #GWVA_MODE_CLASS_METHOD_SEARCH_VISUAL_EVENT,d5
  82.     bne.s pas_distribution_evenement_visual
  83.  
  84.     ;;;;;;;;; GWVA_MODE_CLASS_METHOD_SEARCH_VISUAL_EVENT
  85.  
  86.     ifd OPT_GWVA_DEBUG_ERROR
  87.     move.l d4,d6
  88.     and.l #GWVA_METHOD_MASK_EVENT|GWVA_METHOD_MASK_BEFORE|GWVA_METHOD_MASK_AFTER,d6
  89.     bne.s .methode_est_evenementielle
  90.     GWVA_PROGRAMMER_ERROR    GWVA_ASCII_ERROR_VISUAL_EVENT
  91.     bra .pas_de_liste_methode_locale
  92. .methode_est_evenementielle:
  93.     endc    ; OPT_GWVA_DEBUG_ERROR
  94.  
  95.  
  96.     move.l GWVA_OBJ_METHODTLIST_PTR(a0),a4
  97.  
  98.     cmp.l #GWVA_OBJ_CTE_METHODLISTPTR_UNDEF,a4
  99.     beq.s .pas_de_liste_methode_locale
  100.  
  101. .recherche_methode_class:
  102.     bsr find_method_in_method_list    ; in : a4.l=liste+d4.l=methode ; out : a4.l=ptr struct trouvee (0.l si pas trouvé)
  103.     cmp.l #0,a4
  104.     beq.s .pas_trouve_methode
  105.  
  106. ; La macro GWVA_EXEC_VISUAL_EVENT ne peut être appelée que d'une méthode d'un objet.
  107. ; Par conséquent, les informations liées à sa classe sont stockées.
  108.  
  109.  
  110.     move.w GWVA_OBJ_METHODLIST_ITEM_CLASS(a4),d7    ; correspond-t-elle à celle de la méthode ?
  111.     cmp.w #GWVA_OBJ_CTE_BEFORE_AFTER_ON_OBJECT_CLASS,d7
  112.     bne.s .methode_classe_definie
  113.     move.w GWVA_OBJ_CLASS(a0),d7 ; d7 = classe désirée par l'utilisateur
  114.  
  115. .methode_classe_definie:
  116.     move.l GWVA_SEARCH_EXEC_OBJECT_LEVEL_STACK_PTR,a5
  117.     cmp.w GWVA_SEARCH_EXEC_STACK_CLASS(a5),d7
  118.     beq.s .methode_de_cette_classe
  119.  
  120.     lea GWVA_OBJ_METHODLIST_STRUCT_LENGTH(a4),a4    ; élément suivant de la liste
  121.     bra.s .recherche_methode_class
  122.  
  123. .methode_de_cette_classe:
  124.     moveq #1,d6            ; dans la liste locale
  125.     bsr store_search_exec_information    ; in : d6+d7+a0+d4
  126.  
  127.     bsr gwva_exec_method    ; out -> d6.w+d7 positionnés par la méthode
  128.  
  129.     add.l #GWVA_SEARCH_EXEC_STACK_STRUCT_LENGTH,GWVA_SEARCH_EXEC_OBJECT_LEVEL_STACK_PTR
  130.  
  131.     bra common_distribution_ending
  132.  
  133. .pas_trouve_methode:
  134. .pas_de_liste_methode_locale:
  135.     move.l #GWVA_SEARCH_EXEC_NOT_FOUND,d6    ; par défaut on ne la trouve pas
  136.  
  137.     bra common_distribution_ending
  138.  
  139. ;---------------------------------------------------------------------------------------
  140. pas_distribution_evenement_visual:
  141.  
  142.     cmp.w #GWVA_MODE_CLASS_METHOD_SEARCH_OTHER_OBJ,d5
  143.     bne pas_distribution_sur_autre_objet
  144.  
  145.     ;;;;;;;;; GWVA_MODE_CLASS_METHOD_SEARCH_OTHER_OBJ
  146.  
  147. ; La méthode ne doit maintenant être ni un BEFORE, ni un AFTER, ni un EVENT
  148.  
  149.     ifd OPT_GWVA_DEBUG_ERROR
  150.     move.l d4,d6
  151.     and.l #GWVA_METHOD_MASK_EVENT|GWVA_METHOD_MASK_BEFORE|GWVA_METHOD_MASK_AFTER,d6
  152.     beq.s .methode_pas_evenementielle
  153.     GWVA_PROGRAMMER_ERROR    GWVA_ASCII_ERROR_BEFORE_AFTER
  154.     bra .pas_trouve_methode
  155. .methode_pas_evenementielle:
  156.     endc    ; OPT_GWVA_DEBUG_ERROR
  157.  
  158. ; D'abord on recherche dans la liste locale la méthode
  159.  
  160.     move.l GWVA_OBJ_METHODTLIST_PTR(a0),a4
  161.  
  162.     cmp.l #GWVA_OBJ_CTE_METHODLISTPTR_UNDEF,a4
  163.     beq.s .pas_de_liste_methode_locale
  164.  
  165.     bsr find_method_in_method_list    ; in : a4.l=liste+d4.l=methode ; out : a4.l=ptr struct trouvee (0.l si pas trouvé)
  166.     cmp.l #0,a4
  167.     beq.s .pas_trouve_methode
  168.  
  169.     move.w GWVA_OBJ_CLASS(a0),d7    ; classe de l'objet
  170.     moveq #1,d6            ; dans la liste locale
  171.     bsr store_search_exec_information    ; in : d6+d7+a0+d4
  172.  
  173.     bsr gwva_exec_method    ; out -> d6.w+d7 positionnés par la méthode
  174.  
  175.     add.l #GWVA_SEARCH_EXEC_STACK_STRUCT_LENGTH,GWVA_SEARCH_EXEC_OBJECT_LEVEL_STACK_PTR
  176.  
  177.     bra common_distribution_ending
  178.  
  179. .pas_trouve_methode:
  180. .pas_de_liste_methode_locale:
  181.  
  182. ; Si la liste locale n'a pas consommé la méthode
  183.  
  184.     move.w GWVA_OBJ_CLASS(a0),d7
  185.  
  186. partie_commune_search_method:
  187.  
  188. ; La méthode ne doit maintenant être ni un BEFORE, ni un AFTER
  189.  
  190.     ifd OPT_GWVA_DEBUG_ERROR
  191.     move.l d4,d6
  192.     and.l #GWVA_METHOD_MASK_EVENT|GWVA_METHOD_MASK_BEFORE|GWVA_METHOD_MASK_AFTER,d6
  193.     beq.s .methode_pas_evenementielle
  194.     GWVA_PROGRAMMER_ERROR    GWVA_ASCII_ERROR_BEFORE_AFTER
  195.     bra .pas_trouve_nulle_part
  196. .methode_pas_evenementielle:
  197.     endc    ; OPT_GWVA_DEBUG_ERROR
  198.  
  199. .scan_in_herited_class:
  200.     bsr return_class_method_list    ; in : d7.w ; out : a4.l (0.l si pas trouvé)
  201.  
  202.     ifd OPT_GWVA_DEBUG_ERROR
  203.     cmp.l #GWVA_OBJ_CTE_END_LINK_CLASS_LIST,a4
  204.     bne.s .trouve_default_liste
  205.     GWVA_PROGRAMMER_ERROR    GWVA_ASCII_ERROR_NO_DEFAULT_LIST
  206.     move.w #GWVA_SEARCH_EXEC_NOT_FOUND,d6
  207.     bra common_distribution_ending
  208. .trouve_default_liste:
  209.     endc    ; OPT_GWVA_DEBUG_ERROR
  210.  
  211.     bsr find_method_in_method_list    ; in : a4.l=liste+d4.l=methode ; out : a4.l=ptr struct trouvee (0.l si pas trouvé)
  212.     cmp.l #0,a4
  213.     bne.s .trouve_methode
  214.  
  215.     bsr return_herited_class    ; in : d7.w ; out : d7.w
  216.  
  217.     cmp.w #GWVA_OBJ_CTE_CLASS_UNDEF,d7
  218.     beq.s .pas_trouve_nulle_part
  219.  
  220.     bra.s .scan_in_herited_class
  221.  
  222. .trouve_methode:
  223.  
  224.     clr.w d6            ; pas dans la liste locale
  225.     bsr store_search_exec_information    ; in : d6+d7+a0+d4
  226.  
  227.             ;---------
  228.  
  229.     ifd OPT_GWVA_DEBUG_SEARCH_EXEC_IN_ALERT_BOX
  230.     bsr gwva_show_debug_alert_box
  231.     endc    ; OPT_GWVA_DEBUG_SEARCH_EXEC_IN_ALERT_BOX
  232.  
  233.     ifd OPT_GWVA_DEBUG_SEARCH_EXEC_IN_LOGGER
  234.     bsr gwva_show_debug_send_logger_in
  235.     endc    ; ifd OPT_GWVA_DEBUG_SEARCH_EXEC_IN_LOGGER
  236.  
  237.             ;---------
  238.  
  239.     ifd MDL_EVENTS
  240.  
  241.     cmp.l #GWVA_METHOD_KEYPRESS,d4
  242.     bne.s .pas_meth_keypress
  243.     ; si keypress avant de la distribuer, regarder sa liste shortcuts/methode
  244.     save.l d0-d5/a0-a2
  245.     bsr GWVA_ROOT_SEARCH_EXEC_SHORTCUT
  246.     load.l d0-d5/a0-a2
  247.     cmp.w #GWVA_SEARCH_EXEC_CONSUMED,d6
  248.     beq .methode_shortcut_consomee_arrete_tout
  249. .pas_meth_keypress:
  250.  
  251.     endc    ; ifd MDL_EVENTS
  252.  
  253.             ;---------
  254.  
  255.     bsr gwva_exec_method    ; out -> d6.w+d7 positionnés par la méthode
  256.  
  257. .methode_shortcut_consomee_arrete_tout:
  258.     add.l #GWVA_SEARCH_EXEC_STACK_STRUCT_LENGTH,GWVA_SEARCH_EXEC_OBJECT_LEVEL_STACK_PTR
  259.  
  260.             ;---------
  261.  
  262. *    ifd OPT_GWVA_DEBUG_SEARCH_EXEC_IN_ALERT_BOX
  263. *    bsr gwva_show_debug_alert_box
  264. *    endc    ; OPT_GWVA_DEBUG_SEARCH_EXEC_IN_ALERT_BOX
  265.  
  266.     ifd OPT_GWVA_DEBUG_SEARCH_EXEC_IN_LOGGER
  267.     bsr gwva_show_debug_send_logger_out
  268.     endc    ; ifd OPT_GWVA_DEBUG_SEARCH_EXEC_IN_LOGGER
  269.  
  270.             ;---------
  271.  
  272.     bra common_distribution_ending
  273.  
  274. .pas_trouve_nulle_part:
  275.     move.l #GWVA_SEARCH_EXEC_NOT_FOUND,d6    ; par défaut on ne la trouve pas
  276.     bra common_distribution_ending
  277.  
  278. ;---------------------------------------------------------------------------------------
  279.  
  280. pas_distribution_sur_autre_objet:
  281.     cmp.w #GWVA_MODE_CLASS_METHOD_SEARCH_DIFF_METH_SAME_CLASS,d5
  282.     bne.s pas_distribution_different_method_same_class
  283.  
  284.     ;;;;;;;;; GWVA_MODE_CLASS_METHOD_SEARCH_DIFF_METH_SAME_CLASS
  285.  
  286.     move.l GWVA_SEARCH_EXEC_OBJECT_LEVEL_STACK_PTR,a5
  287.     move.w GWVA_SEARCH_EXEC_STACK_CLASS(a5),d7
  288.  
  289.     bra partie_commune_search_method
  290.  
  291. ;---------------------------------------------------------------------------------------
  292. pas_distribution_different_method_same_class:
  293.     cmp.w #GWVA_MODE_CLASS_METHOD_SEARCH_INHERITED,d5
  294.     bne.s pas_distribution_mode_heritage
  295.  
  296.     ;;;;;;;;; GWVA_MODE_CLASS_METHOD_SEARCH_INHERITED
  297.  
  298.     move.l GWVA_SEARCH_EXEC_OBJECT_LEVEL_STACK_PTR,a5
  299.     move.w GWVA_SEARCH_EXEC_STACK_CLASS(a5),d7
  300.  
  301.     tst.w GWVA_SEARCH_EXEC_STACK_IS_IN_LOCAL_METHOD_LIST(a5)
  302.     bne.s .pas_de_classe_herite_si_dans_local
  303.  
  304.     bsr return_herited_class    ; in : d7.w ; out : d7.w
  305.     cmp.w #GWVA_OBJ_CTE_CLASS_UNDEF,d7
  306.     beq common_distribution_ending
  307.  
  308. .pas_de_classe_herite_si_dans_local:
  309.     move.l GWVA_SEARCH_EXEC_OBJECT_LEVEL_STACK_PTR,a5
  310.     move.l GWVA_SEARCH_EXEC_STACK_METHOD(a5),d4
  311.  
  312.     bra partie_commune_search_method
  313.  
  314. ;---------------------------------------------------------------------------------------
  315. pas_distribution_mode_heritage:
  316.     cmp.w #GWVA_MODE_CLASS_METHOD_SEARCH_ALL_FIRST_SON,d5
  317.     beq.s .distribution_afs
  318.     cmp.w #GWVA_MODE_CLASS_METHOD_SEARCH_AFS_WITH_HANDLE,d5
  319.     bne pas_distribution_afs
  320. .distribution_afs:
  321.  
  322.     ;;;;;;;;; GWVA_MODE_CLASS_METHOD_SEARCH_ALL_FIRST_SON
  323.     ;;;;;;;;; GWVA_MODE_CLASS_METHOD_SEARCH_AFS_WITH_HANDLE
  324.  
  325.     save.l a0
  326.  
  327.     move.w #GWVA_SEARCH_EXEC_NO_DEST_FOUND,GWVA_SEARCH_EXEC_RETURN_CODE_D6
  328.  
  329.     move.l GWVA_OBJ_FIRST_SON_PTR(a0),a0
  330.     cmp.l #0,a0
  331.     beq.s .no_child_at_all
  332.  
  333. .parcourir_toutes:
  334.     bsr GWVA_ROOT_TEST_IF_OBJECT_CREATED
  335.     cmp.w #GWVA_NO_ERROR_GENERIC,d7
  336.     bne.s .cet_objet_n_est_pas_cree
  337.  
  338.     cmp.w #GWVA_MODE_CLASS_METHOD_SEARCH_AFS_WITH_HANDLE,d5
  339.     bne.s .pas_init_d0
  340.     move.w GWVA_WIND_OBJ_GEM_HANDLE(a0),d0    ; les méthodes wind prennent d0 en entrée
  341. .pas_init_d0:
  342.  
  343.     ifd MDL_EVENTS
  344.  
  345.     cmp.l #GWVA_METHOD_KEYPRESS,d4
  346.     bne.s .pas_meth_keypress
  347.     ; si keypress avant de la distribuer, regarder sa liste shortcuts/methode
  348.     save.l d0-d5/a0-a2
  349.     bsr GWVA_ROOT_SEARCH_EXEC_SHORTCUT
  350.     load.l d0-d5/a0-a2
  351.     cmp.w #GWVA_SEARCH_EXEC_CONSUMED,d6
  352.     beq .methode_shortcut_consomee_arrete_tout
  353.     moveq #GWVA_SEARCH_EXEC_NOT_FOUND,d6    ; par défaut on ne la trouve pas
  354. .pas_meth_keypress:
  355.  
  356.     endc    ; ifd MDL_EVENTS
  357.  
  358.     move.l GWVA_OBJ_NEXT_BROTHER_PTR(a0),-(sp)
  359.  
  360.     save.l d4/d5        ; a0 est sauvé
  361.     GWVA_CALL_METHOD_OTHER_OBJ    d4
  362.     load.l d4/d5
  363.  
  364.     cmp.w #GWVA_SEARCH_EXEC_CONSUMED_BY_ONE_OBJECT,GWVA_SEARCH_EXEC_RETURN_CODE_D6
  365.     beq.s .one_object_has_consumed
  366.  
  367.     cmp.w #GWVA_SEARCH_EXEC_CONSUMED,d6
  368.     bne.s .method_not_consumed
  369.  
  370.     move.w #GWVA_SEARCH_EXEC_CONSUMED_BY_ONE_OBJECT,GWVA_SEARCH_EXEC_RETURN_CODE_D6
  371.     bra.s .one_object_has_consumed
  372. .method_not_consumed:
  373.  
  374.     move.w d6,GWVA_SEARCH_EXEC_RETURN_CODE_D6
  375. .one_object_has_consumed:
  376.  
  377. ; On récupère directement le frère de l'objet, au cas où il est enlevé de l'arbre
  378.     move.l (sp)+,a0
  379.     bra.s .frere_deja_connu
  380.  
  381. .cet_objet_n_est_pas_cree:
  382.     move.l GWVA_OBJ_NEXT_BROTHER_PTR(a0),a0
  383. .frere_deja_connu:
  384.     cmp.l #0,a0
  385.     bne.s .parcourir_toutes
  386.  
  387. .no_child_at_all:
  388. .fin_commune:
  389.     load.l a0
  390.     move.w GWVA_SEARCH_EXEC_RETURN_CODE_D6,d6
  391.     bra common_distribution_ending
  392.  
  393. .methode_shortcut_consomee_arrete_tout:
  394.     move.w #GWVA_SEARCH_EXEC_CONSUMED_BY_ONE_OBJECT,GWVA_SEARCH_EXEC_RETURN_CODE_D6
  395.     bra.s .fin_commune
  396.  
  397. ;---------------------------------------------------------------------------------------
  398. pas_distribution_afs:
  399.     illegal
  400.  
  401. ;---------------------------------------------------------------------------------------
  402.  
  403. common_distribution_ending:
  404.     ifd OPT_GWVA_DEBUG_SEARCH_EXEC
  405.     sub.w #1,GWVA_DEBUG_STACK_LEVEL_COUNTER
  406.     endc    ; OPT_GWVA_DEBUG_SEARCH_EXEC
  407.  
  408.     rts
  409.  
  410.             *---------------
  411.  
  412. return_herited_class:    ; in : d7.w ; out : d7.w (=UNDEF si pas d'heritage) ; scratch a4
  413.  
  414.     lea GWVA_ROOT_CLASS_INHERITANCE_LIST,a4
  415.  
  416. .search_my_class:
  417.     cmp.w #GWVA_OBJ_CTE_END_INHERITANCE_LIST,GWVA_OBJ_INHERITANCELIST_ITEM_SONCLASS(a4)
  418.     beq.s .fin_liste_heritage
  419.  
  420.     cmp.w GWVA_OBJ_INHERITANCELIST_ITEM_SONCLASS(a4),d7
  421.     beq.s .found
  422.  
  423.     lea GWVA_OBJ_INHERITANCELIST_ITEM_STRUCT_LENGTH(a4),a4
  424.     bra.s .search_my_class
  425.  
  426. .fin_liste_heritage:
  427.     cmp.l #GWVA_OBJ_CTE_END_LINK_INHERITANCE_LIST,GWVA_OBJ_INHERITANCELIST_LINKLIST_PTR(a4)
  428.     beq.s .pas_trouve_heritage
  429.     move.l GWVA_OBJ_INHERITANCELIST_LINKLIST_PTR(a4),a4
  430.     bra.s .search_my_class
  431.  
  432. .found:    move.w GWVA_OBJ_INHERITANCELIST_ITEM_FATHERCLASS(a4),d7
  433.     rts
  434.  
  435. .pas_trouve_heritage:
  436.     ifd OPT_GWVA_DEBUG_ERROR
  437.     GWVA_PROGRAMMER_ERROR    GWVA_ASCII_ERROR_NO_INHERITANCE
  438. .trouve_default_liste:
  439.     endc    ; OPT_GWVA_DEBUG_ERROR
  440.  
  441.             *---------------
  442.  
  443. find_method_in_method_list:    ; in : a4.l=liste+d4.l=methode ; out : a4.l=ptr struct trouvee (0.l si pas trouvé)
  444.  
  445. .search_method_in_list:
  446.     cmp.l #GWVA_OBJ_CTE_END_METHOD_LIST,GWVA_OBJ_METHODLIST_ITEM_METHOD(a4)
  447.     beq.s .fin_liste
  448.  
  449.     bftst GWVA_OBJ_METHODLIST_ITEM_PROPERTIES(a4){GWVA_METHOD_PROPERTIES_OLBIT_COMMAND:1}
  450.     beq.s .pas_commande
  451.  
  452.     cmp.l #GWVA_METHOD_CTE_COMMAND_GOTO,GWVA_OBJ_METHODLIST_ITEM_METHOD(a4)
  453.     bne.s .pas_goto
  454.     move.l GWVA_OBJ_METHODLIST_ITEM_ROUTINE(a4),a4
  455.     bra.s .search_method_in_list
  456. .pas_goto:
  457.     ifd OPT_GWVA_DEBUG_ERROR
  458.     GWVA_PROGRAMMER_ERROR    GWVA_ASCII_ERROR_METHOD_UNKNOW_COMMAND
  459.     endc    ; ifd OPT_GWVA_DEBUG_ERROR
  460.     bra.s .fin_liste
  461.  
  462. .pas_commande:
  463.     cmp.l GWVA_OBJ_METHODLIST_ITEM_METHOD(a4),d4
  464.     beq.s .methode_trouvee
  465.     lea GWVA_OBJ_METHODLIST_STRUCT_LENGTH(a4),a4
  466.     bra.s .search_method_in_list
  467. .methode_trouvee:
  468.     rts
  469. .fin_liste:    lea 0.w,a4
  470.     rts
  471.  
  472.             *---------------
  473.  
  474. return_class_method_list:    ; in : d7.w ; out : a4.l (0.l si pas trouvé)
  475.     lea GWVA_ROOT_DEFAULT_METHODLIST_LIST,a4
  476.  
  477. .find_class_def_meth_list:
  478.     cmp.w #GWVA_OBJ_CTE_END_CLASS_LIST,GWVA_OBJ_CLASSLIST_ITEM_CLASS(a4)
  479.     beq.s .fin_liste_pas_trouve
  480.     cmp.w GWVA_OBJ_CLASSLIST_ITEM_CLASS(a4),d7
  481.     beq.s .found
  482.     lea GWVA_OBJ_CLASSLIST_ITEM_STRUCT_LENGTH(a4),a4
  483.     bra.s .find_class_def_meth_list
  484. .fin_liste_pas_trouve:
  485.     move.l GWVA_OBJ_CLASSLIST_ITEM_DEFAULTMETHOD_PTR(a4),a4
  486.     cmp.l #GWVA_OBJ_CTE_END_LINK_CLASS_LIST,a4
  487.     beq.s .pas_continue_ailleurs
  488.     bra.s .find_class_def_meth_list
  489. .pas_continue_ailleurs:
  490.     rts
  491. .found:    move.l GWVA_OBJ_CLASSLIST_ITEM_DEFAULTMETHOD_PTR(a4),a4
  492.     rts
  493.  
  494.             *---------------
  495.  
  496. store_search_exec_information:
  497.     move.l GWVA_SEARCH_EXEC_OBJECT_LEVEL_STACK_PTR,a5
  498.     sub.l #GWVA_SEARCH_EXEC_STACK_STRUCT_LENGTH,a5
  499.     move.l a0,GWVA_SEARCH_EXEC_STACK_OBJECT(a5)
  500.     move.l d4,GWVA_SEARCH_EXEC_STACK_METHOD(a5)
  501.     move.w d7,GWVA_SEARCH_EXEC_STACK_CLASS(a5)
  502.     ; pour le cas d'un call inherited depuis une methode surchargée
  503.     ; en local : repartir de la classe courante dans le default
  504.     ; et non pas de la classe-1
  505.     move.w d6,GWVA_SEARCH_EXEC_STACK_IS_IN_LOCAL_METHOD_LIST(a5)
  506.  
  507.     move.l a5,GWVA_SEARCH_EXEC_OBJECT_LEVEL_STACK_PTR
  508.     rts
  509.  
  510. *////////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*
  511.  
  512.     ifd OPT_GWVA_DEBUG_SEARCH_EXEC
  513.  
  514.     ifd OPT_GWVA_DEBUG_SEARCH_EXEC_IN_ALERT_BOX
  515.  
  516. gwva_show_debug_alert_box:
  517.     save.l d0-a6
  518.  
  519.     bsr gwva_test_debug_filter    ; out=>d5 =ERROR/NO_ERROR
  520.     cmp.w #GWVA_NO_ERROR_GENERIC,d5
  521.     bne .pas_d_edition
  522.  
  523.     movem.l (sp),d0-a6        ; pour récupérer d5
  524.  
  525.     lea GWVA_ROOT_ALERT_METHOD_DISTRI_OBJ,a6    ; Obj=1234
  526.     move.l GWVA_OBJ_NAME(a0),(a6)
  527.     moveq #4-1,d3
  528. .test_4_chars:
  529.     tst.b (a6)+
  530.     bne.s .test_next
  531.     move.b #'0',-1(a6)    ; ne pas mettre de 0.b : coupe l'affichage
  532. .test_next:    dbf d3,.test_4_chars
  533.  
  534.     move.l #'AFT-',GWVA_ROOT_ALERT_METHOD_DISTRI_AFTB    ; AFT-
  535.     btst #GWVA_METHOD_BIT_AFTER,d4
  536.     bne.s .this_was_after
  537.     move.l #'BEF-',GWVA_ROOT_ALERT_METHOD_DISTRI_AFTB
  538.     btst #GWVA_METHOD_BIT_BEFORE,d4
  539.     bne.s .this_was_before
  540.     move.l #'   -',GWVA_ROOT_ALERT_METHOD_DISTRI_AFTB
  541. .this_was_after:
  542. .this_was_before:
  543.  
  544.     save.l d0-a6            ; Meth=$12345678
  545.     move.l d4,d0
  546.     lea GWVA_ROOT_ALERT_METHOD_DISTRI_NR,a1
  547.     bsr fill_8char_field_with_hexa
  548.     load.l d0-a6
  549.  
  550.     lea GWVA_ROOT_ALERT_METHOD_DISTRI_NAME,a6    ; nom méthode
  551.     move.l #'    ',(a6)
  552.     move.l #'    ',4(a6)
  553.     move.l #'    ',8(a6)
  554.     move.l #'    ',12(a6)
  555.  
  556.     moveq #16-1,d7
  557.     bsr fill_method_name
  558.  
  559.     save.l d0-a6
  560.     lea GWVA_ROOT_ALERT_METHOD_DISTRI_MODE,a1    ; Mode
  561.     move.l d5,d0
  562.     and.l #$ffff,d0
  563.     bsr GWVA_STOCK_DECI
  564.     move.b #' ',-1(a1)
  565.     load.l d0-a6
  566.  
  567.     save.l d0-a6
  568.     lea GWVA_ROOT_ALERT_METHOD_DISTRI_CLASS,a1    ; Class
  569.     move.l GWVA_SEARCH_EXEC_OBJECT_LEVEL_STACK_PTR,a5
  570.     move.w GWVA_SEARCH_EXEC_STACK_CLASS(a5),d0
  571.     and.l #$00ff,d0            ; <=99 !!
  572.     bsr GWVA_STOCK_DECI
  573.     move.b #' ',-1(a1)
  574.     load.l d0-a6
  575.  
  576.     save.l d0-a6            ; a0
  577.     move.l a0,d0
  578.     lea GWVA_ROOT_ALERT_METHOD_DISTRI_A0,a1
  579.     bsr fill_8char_field_with_hexa
  580.     load.l d0-a6
  581.  
  582.     save.l d0-a6            ; d0
  583.     lea GWVA_ROOT_ALERT_METHOD_DISTRI_D0,a1
  584.     bsr fill_8char_field_with_hexa
  585.     load.l d0-a6
  586.  
  587.     save.l d0-a6            ; d1
  588.     move.l d1,d0
  589.     lea GWVA_ROOT_ALERT_METHOD_DISTRI_D1,a1
  590.     bsr fill_8char_field_with_hexa
  591.     load.l d0-a6
  592.  
  593.     save.l d0-a6            ; d2
  594.     move.l d2,d0
  595.     lea GWVA_ROOT_ALERT_METHOD_DISTRI_D2,a1
  596.     bsr fill_8char_field_with_hexa
  597.     load.l d0-a6
  598.  
  599.     lea GWVA_ROOT_ALERT_METHOD_DISTRI,a0
  600.     moveq #1,d0
  601.     bsr GWVA_ROOT_PRG_ALERT_BOX
  602.  
  603. .pas_d_edition:
  604.     load.l d0-a6
  605.     rts
  606.  
  607.     endc    ; ifd OPT_GWVA_DEBUG_SEARCH_EXEC_IN_ALERT_BOX
  608.  
  609.     ;-----------------
  610.  
  611.     ifd OPT_GWVA_DEBUG_SEARCH_EXEC_IN_LOGGER
  612.  
  613. gwva_show_debug_send_logger_entete_commune_in_out:
  614.     move.l GWVA_DEBUG_SEARCH_EXEC_TEXT_PTR,a6
  615.     cmp.l #0,a6
  616.     bne.s .pas_premiere_fois
  617.     lea GWVA_DEBUG_SEARCH_EXEC_IN_LOGGER_TMP_MSG_BUF,a6
  618. .pas_premiere_fois:
  619.     lea GWVA_DEBUG_MSG_MAX_SIZE(a6),a6
  620.     cmp.l #GWVA_DEBUG_SEARCH_EXEC_IN_LOGGER_TMP_MSG_BUF+GWVA_DEBUG_MSG_MAX_SIZE*GWVA_DEBUG_MAX_MSG_DEBUG_PENDING,a6
  621.     blt.s .end_not_reached
  622.     lea GWVA_DEBUG_SEARCH_EXEC_IN_LOGGER_TMP_MSG_BUF,a6
  623. .end_not_reached:
  624.     move.l a6,GWVA_DEBUG_SEARCH_EXEC_TEXT_PTR
  625.  
  626.  
  627.     move.l GWVA_ROOT_PTR_WAPP,a5        ; le nom de mon appli
  628.     move.l ([GWVA_WAPP_OBJ_REG_NAME,a5]),(a6)+
  629.     move.l ([GWVA_WAPP_OBJ_REG_NAME,a5],4),(a6)+
  630.     move.b #' ',(a6)+
  631.  
  632.     move.w GWVA_DEBUG_STACK_LEVEL_COUNTER,d3
  633.     subq #1,d3        ; qd on est ici on a toujours au moins 1
  634.     bmi.s .erreur_niveau_pile
  635.     mulu #2,d3
  636.     beq.s .nul
  637. .put_spaces:move.b #' ',(a6)+
  638.     dbf d3,.put_spaces
  639. .nul:
  640. .erreur_niveau_pile:
  641.     rts
  642.  
  643.         ;-----------------
  644.  
  645. gwva_show_debug_send_logger_fin_commune_in_out:
  646.     move.b #rc,(a6)+
  647.     move.b #lf,(a6)+
  648.     clr.b (a6)+
  649.  
  650.     ifeq 1
  651.     ; au moins 69+62=131 de long
  652.     lea GWVA_ROOT_TMP_MSG_OUT_BUF,a0
  653.     move.w #GWVA_MSG_LOG,bmsg_msgid(a0)
  654.     sub.l a0,a6
  655.     move.l a6,d0
  656.  
  657.     lea GWVA_DEBUG_CTE_LOGGER_REGNAME,a1
  658.     moveq #GWVA_MODE_SEND_GEM_MESSAGE_APNAME,d1
  659.  
  660.     moveq #1,d5
  661. .retry_sending_message:
  662.     save.l d0/d1/d5/a0/a1
  663.     bsr GWVA_ROOT_SEND_GEM_MESSAGE
  664.     load.l d0/d1/d5/a0/a1
  665.     cmp.w #GWVA_ERROR_ROOT_APPL_WRITE_FAILED,d7
  666.     bne.s .cannot_do_anything
  667.     cmp.w #32,d5
  668.     beq.s .too_many_retries
  669.     addq #1,d5
  670.     save.l d0/d1/d5/a0/a1
  671.     evnt_timer #1
  672.     load.l d0/d1/d5/a0/a1
  673.     bra.s .retry_sending_message
  674.  
  675. .too_many_retries:
  676. .cannot_do_anything:
  677.  
  678.     endc    ; ifeq 1
  679.  
  680.     move.l GWVA_DEBUG_SEARCH_EXEC_TEXT_PTR,a0
  681.     bsr GWVA_DEBUG_PRG_SEND_LOGGER_MESSAGE
  682.  
  683.     load.l d0-a6
  684.     rts
  685.  
  686.         ;-----------------
  687.  
  688. gwva_show_debug_send_logger_out:
  689.     save.l d0-a6
  690.  
  691.     bsr gwva_test_debug_filter    ; out=>d5 =ERROR/NO_ERROR
  692.     cmp.w #GWVA_NO_ERROR_GENERIC,d5
  693.     bne .pas_d_edition
  694.  
  695.     movem.l (sp),d0-a6        ; pour récupérer d5
  696.  
  697.     bsr gwva_show_debug_send_logger_entete_commune_in_out
  698.  
  699.     lea GWVA_ROOT_DEBUG_LOGGER_D6,a5
  700.     bsr copy_string_0_a5_a6
  701.  
  702.     save.l d0-a6            ; d6
  703.     move.l d6,d0
  704.     move.l a6,a1
  705.     bsr fill_8char_field_with_hexa
  706.     load.l d0-a6
  707.     lea 8(a6),a6
  708.  
  709.     lea GWVA_ROOT_DEBUG_LOGGER_D7,a5
  710.     bsr copy_string_0_a5_a6
  711.  
  712.     save.l d0-a6            ; d7
  713.     move.l d7,d0
  714.     move.l a6,a1
  715.     bsr fill_8char_field_with_hexa
  716.     load.l d0-a6
  717.     lea 8(a6),a6
  718.  
  719.     bra gwva_show_debug_send_logger_fin_commune_in_out
  720.  
  721. .pas_d_edition:
  722.     load.l d0-a6
  723.     rts
  724.  
  725.         ;-----------------
  726.  
  727. gwva_show_debug_send_logger_in:
  728.     save.l d0-a6
  729.  
  730.     bsr gwva_test_debug_filter    ; out=>d5 =ERROR/NO_ERROR
  731.     cmp.w #GWVA_NO_ERROR_GENERIC,d5
  732.     bne .pas_d_edition
  733.  
  734.     movem.l (sp),d0-a6        ; pour récupérer d5
  735.  
  736.     bsr gwva_show_debug_send_logger_entete_commune_in_out
  737.  
  738.     lea GWVA_ROOT_DEBUG_LOGGER_OBJ,a5
  739.     bsr copy_string_0_a5_a6
  740.  
  741.     move.l GWVA_OBJ_NAME(a0),(a6)        ; obj sur 4 chars
  742.     moveq #4-1,d3
  743. .test_4_chars:
  744.     tst.b (a6)+
  745.     bne.s .test_next
  746.     move.b #'0',-1(a6)    ; ne pas mettre de 0.b : coupe l'affichage
  747. .test_next:    dbf d3,.test_4_chars
  748.  
  749.     lea GWVA_ROOT_DEBUG_LOGGER_FILL1,a5
  750.     bsr copy_string_0_a5_a6
  751.  
  752.     move.l #'AFT/',(a6)            ; AFT/
  753.     btst #GWVA_METHOD_BIT_AFTER,d4
  754.     bne.s .this_was_after
  755.     move.l #'BEF/',(a6)
  756.     btst #GWVA_METHOD_BIT_BEFORE,d4
  757.     beq.s .ni_before_ni_after
  758. .this_was_after:
  759.     lea 4(a6),a6
  760. .ni_before_ni_after:
  761.  
  762.     moveq #64,d7            ; method name
  763.     bsr fill_method_name
  764.  
  765.     lea GWVA_ROOT_DEBUG_LOGGER_FILL2,a5
  766.     bsr copy_string_0_a5_a6
  767.  
  768.     save.l d0-a6            ; Meth=$12345678
  769.     move.l d4,d0
  770.     move.l a6,a1
  771.     bsr fill_8char_field_with_hexa
  772.     load.l d0-a6
  773.     lea 8(a6),a6
  774.  
  775.     lea GWVA_ROOT_DEBUG_LOGGER_CLASS,a5
  776.     bsr copy_string_0_a5_a6
  777.  
  778.     save.l d0-a5
  779.     move.l a6,a1            ; Class
  780.     move.l GWVA_SEARCH_EXEC_OBJECT_LEVEL_STACK_PTR,a5
  781.     move.w GWVA_SEARCH_EXEC_STACK_CLASS(a5),d0
  782.     and.l #$00ff,d0
  783.     bsr GWVA_STOCK_DECI
  784.     lea -1(a1),a6
  785.     load.l d0-a5
  786.  
  787.     lea GWVA_ROOT_DEBUG_LOGGER_MODE,a5
  788.     bsr copy_string_0_a5_a6
  789.  
  790.     save.l d0-a5
  791.     move.l a6,a1            ; Mode
  792.     move.l d5,d0
  793.     and.l #$ffff,d0
  794.     bsr GWVA_STOCK_DECI
  795.     lea -1(a1),a6
  796.     load.l d0-a5
  797.  
  798.     lea GWVA_ROOT_DEBUG_LOGGER_REGS_DUMPA0,a5
  799.     bsr copy_string_0_a5_a6
  800.  
  801.     save.l d0-a6            ; a0
  802.     move.l a0,d0
  803.     move.l a6,a1
  804.     bsr fill_8char_field_with_hexa
  805.     load.l d0-a6
  806.     lea 8(a6),a6
  807.  
  808.     lea GWVA_ROOT_DEBUG_LOGGER_D0,a5
  809.     bsr copy_string_0_a5_a6
  810.  
  811.     save.l d0-a6            ; d0
  812.     move.l a6,a1
  813.     bsr fill_8char_field_with_hexa
  814.     load.l d0-a6
  815.     lea 8(a6),a6
  816.  
  817.     lea GWVA_ROOT_DEBUG_LOGGER_D1,a5
  818.     bsr copy_string_0_a5_a6
  819.  
  820.     save.l d0-a6            ; d1
  821.     move.l d1,d0
  822.     move.l a6,a1
  823.     bsr fill_8char_field_with_hexa
  824.     load.l d0-a6
  825.     lea 8(a6),a6
  826.  
  827.     lea GWVA_ROOT_DEBUG_LOGGER_D2,a5
  828.     bsr copy_string_0_a5_a6
  829.  
  830.     save.l d0-a6            ; d2
  831.     move.l d2,d0
  832.     move.l a6,a1
  833.     bsr fill_8char_field_with_hexa
  834.     load.l d0-a6
  835.     lea 8(a6),a6
  836.  
  837.     bra gwva_show_debug_send_logger_fin_commune_in_out
  838.  
  839. .pas_d_edition:
  840.     load.l d0-a6
  841.     rts
  842.  
  843.     ;-----------------
  844.  
  845. GWVA_DEBUG_PRG_SEND_LOGGER_MESSAGE:        ; in : a0=ptr on string to log. Rq: scratches registers
  846.                 ; out : nothing
  847.     move.l a0,a1
  848.  
  849. *    move.w #$1234,GWVA_DEBUG_SEARCH_EXEC_IN_LOGGER_LOG_ACK
  850.  
  851.     lea GWVA_ROOT_TMP_MSG_OUT_BUF,a0
  852.     move.w #GWVA_MSG_LOG,bmsg_msgid(a0)
  853.     move.l a1,bmsg_debug_string_ptr(a0)    ; ptr sur le texte
  854. *    move.l #GWVA_DEBUG_SEARCH_EXEC_IN_LOGGER_TMP_MSG_BUF,bmsg_debug_string_ptr(a0)
  855.     move.w #'11',bmsg_debug_format(a0)
  856. *    move.l #GWVA_DEBUG_SEARCH_EXEC_IN_LOGGER_LOG_ACK,bmsg_debug_ack_word_ptr(a0)
  857.  
  858.     moveq #16,d0
  859.     lea GWVA_DEBUG_CTE_LOGGER_REGNAME,a1
  860.     moveq #GWVA_MODE_SEND_GEM_MESSAGE_APNAME,d1
  861.  
  862.     bsr GWVA_ROOT_SEND_GEM_MESSAGE
  863.     cmp.w #GWVA_NO_ERROR_GENERIC,d7
  864.     bne.s .do_not_wait_for_ack
  865.  
  866. *    ; Remarque: on peut attendre à l'infini si le logger ne répond pas !
  867. *.wait_loop:    tst GWVA_DEBUG_SEARCH_EXEC_IN_LOGGER_LOG_ACK
  868. *    beq.s .ack_received
  869.  
  870.     evnt_timer #1
  871.     evnt_timer #1
  872. *    bra.s .wait_loop
  873. *.ack_received:
  874.  
  875. .do_not_wait_for_ack:
  876.     rts
  877.  
  878.     ;-----------------
  879.  
  880. copy_string_0_a5_a6:
  881.     COPY_STRING_0 a5,a6
  882.     lea -1(a6),a6
  883.     rts
  884.  
  885.     endc    ; ifd OPT_GWVA_DEBUG_SEARCH_EXEC_IN_LOGGER
  886.  
  887.     ;-----------------
  888.  
  889. fill_8char_field_with_hexa:
  890.     move.w 7(a1),-(sp)
  891.     moveq #32,d1
  892.     save.l a1
  893.     bsr GWVA_STOCK_HEXA
  894.     load.l a1
  895.     load.w d0
  896.     move.b d0,8(a1)
  897.     rts
  898.  
  899.     ;-----------------
  900.  
  901. fill_method_name:        ; entrée : a6=dest+d7=longeur maxi à copier
  902.     save.l d4
  903.     bclr #GWVA_METHOD_BIT_AFTER,d4        ; on perd d4
  904.     bclr #GWVA_METHOD_BIT_BEFORE,d4
  905.     lea GWVA_DEBUG_EVNT_TABLE,a5
  906. .search_method:
  907.     cmp.l #-1,(a5)
  908.     beq.s .fin_pas_trouve
  909.     cmp.l (a5),d4
  910.     beq.s .trouve
  911.     lea 4+4(a5),a5
  912.     bra.s .search_method
  913. .trouve:    move.l 4(a5),a5
  914.  
  915. .seulement_16:
  916.     move.b (a5)+,d3
  917.     beq.s .fin_recopie
  918.     move.b d3,(a6)+
  919.     dbf d7,.seulement_16
  920. .fin_recopie:
  921. .fin_pas_trouve:
  922.     load.l d4
  923.     rts
  924.  
  925.     ;-----------------
  926.  
  927. gwva_test_debug_filter:        ; out=>d5 =ERROR/NO_ERROR
  928.  
  929.     save.l d0-d4/d6-a6
  930.     move.w  #-1,-(sp)    ; Shift_Droit:1, SG:2 CTRL:4 ALT:8
  931.     appel bios,kbshift,4    ; état des touches spéciales
  932.     and.w #%1010,d0
  933.     move d0,d5
  934.     load.l d0-d4/d6-a6
  935.     cmp.w #%1010,d5
  936.     bne.s .pas_annule_shift_shift
  937.  
  938.     moveq #GWVA_ERROR_GENERIC,d5
  939.     rts
  940.  
  941. .pas_annule_shift_shift:
  942.  
  943.         ;-----------
  944.  
  945.     ifd OPT_GWVA_DEBUG_FILTER_0NAMES
  946.  
  947.     tst.l GWVA_OBJ_NAME(a0)
  948.     bne.s .pas_filtre_objet_nom0
  949.  
  950.     moveq #GWVA_ERROR_GENERIC,d5
  951.     rts
  952. .pas_filtre_objet_nom0:
  953.  
  954.     endc    ; ifd OPT_GWVA_DEBUG_FILTER_0NAMES
  955.  
  956.         ;-----------
  957.  
  958.     ifnd OPT_GWVA_DEBUG_FILTER
  959.  
  960.     moveq #GWVA_NO_ERROR_GENERIC,d5
  961.     rts
  962.  
  963.     else
  964.  
  965.         ;-----------
  966.  
  967.     moveq #GWVA_ERROR_GENERIC,d5
  968.     lea OPT_GWVA_DEBUG_FILTER_PTR,a5
  969.  
  970. .cherche:    tst.l (a5)
  971.     beq.s .fin_pas_trouve
  972.     cmp.l (a0)+,(a5)+
  973.     beq.s .on_veut_debugger_celui_la
  974.     lea -4(a0),a0    ; ah les modes d'adressage de 68030 sont limités alors on ruse
  975.     bra.s .cherche
  976. .on_veut_debugger_celui_la:
  977.     lea -4(a0),a0    ; ah les modes d'adressage de 68030 sont limités alors on ruse
  978.     moveq #GWVA_NO_ERROR_GENERIC,d5
  979. .fin_pas_trouve:
  980.     rts
  981.  
  982.     endc    ; ifnd OPT_GWVA_DEBUG_FILTER
  983.  
  984.     ;-----------------
  985.  
  986.     ifd OPT_GWVA_DEBUG_SEARCH_EXEC_IN_ALERT_BOX
  987.  
  988.  DATA
  989.             ; 'V.A. Kernel Method distribution'
  990.             ; 'Obj="1234",AFT-1234567890123456'
  991.             ; 'Meth=$12345678 Mode=12 Class=12'
  992.             ; 'Regs: a0=$12345678 d0=$12345678'
  993.             ; 'Dump: d1=$12345678 d2=$12345678'
  994.  
  995.     dc.b 0    ; pour évider l'odd add sur un move.l sur ad impaire
  996. GWVA_ROOT_ALERT_METHOD_DISTRI:    dc.b '[3]'
  997.             dc.b '[V.A. Kernel Method distribution'
  998.             dc.b '|Obj="'
  999. GWVA_ROOT_ALERT_METHOD_DISTRI_OBJ:    dc.b '1234'
  1000.             dc.b '",'
  1001. GWVA_ROOT_ALERT_METHOD_DISTRI_AFTB:    dc.b 'AFT-'
  1002. GWVA_ROOT_ALERT_METHOD_DISTRI_NAME:    dc.b '1234567890123456'
  1003.             dc.b '|Meth=$'
  1004. GWVA_ROOT_ALERT_METHOD_DISTRI_NR:    dc.b '12345678'
  1005.             dc.b ' Mode='
  1006. GWVA_ROOT_ALERT_METHOD_DISTRI_MODE:    dc.b '12'
  1007.             dc.b ' Class='
  1008. GWVA_ROOT_ALERT_METHOD_DISTRI_CLASS:dc.b '12'
  1009.             dc.b '|Regs: a0=$'
  1010. GWVA_ROOT_ALERT_METHOD_DISTRI_A0:    dc.b '12345678'
  1011.             dc.b ' d0=$'
  1012. GWVA_ROOT_ALERT_METHOD_DISTRI_D0:    dc.b '12345678'
  1013.             dc.b '|Dump: d1=$'
  1014. GWVA_ROOT_ALERT_METHOD_DISTRI_D1:    dc.b '12345678'
  1015.             dc.b ' d2=$'
  1016. GWVA_ROOT_ALERT_METHOD_DISTRI_D2:    dc.b '12345678'
  1017.             dc.b '][Thanx]'
  1018.             dc.b 0
  1019.  even
  1020.  TEXT
  1021.     endc    ; ifd OPT_GWVA_DEBUG_SEARCH_EXEC_IN_ALERT_BOX
  1022.  
  1023.     ;-----------------
  1024.  
  1025.     ifd OPT_GWVA_DEBUG_SEARCH_EXEC_IN_LOGGER
  1026.  
  1027.  DATA
  1028. ; 69 'APP_NAME [tabs]Obj="1234" AFT/the method name(<=21)/$12345678 Mode=12'
  1029. ; 62 'Regs Dump: a0=$12345678 d0=$12345678 d1=$12345678 d2=$12345678'
  1030. GWVA_ROOT_DEBUG_LOGGER_OBJ:    dc.b 'Obj="',0
  1031. GWVA_ROOT_DEBUG_LOGGER_FILL1:    dc.b '" ',0
  1032. GWVA_ROOT_DEBUG_LOGGER_FILL2:    dc.b '/$',0
  1033. GWVA_ROOT_DEBUG_LOGGER_CLASS:    dc.b ' Class=',0
  1034. GWVA_ROOT_DEBUG_LOGGER_MODE:    dc.b ' Mode=',0
  1035. GWVA_ROOT_DEBUG_LOGGER_REGS_DUMPA0:    dc.b ' Regs Dump: a0=$',0
  1036. GWVA_ROOT_DEBUG_LOGGER_D0:    dc.b ' d0=$',0
  1037. GWVA_ROOT_DEBUG_LOGGER_D1:    dc.b ' d1=$',0
  1038. GWVA_ROOT_DEBUG_LOGGER_D2:    dc.b ' d2=$',0
  1039.  
  1040. GWVA_ROOT_DEBUG_LOGGER_D6:    dc.b '-> d6=$',0
  1041. GWVA_ROOT_DEBUG_LOGGER_D7:    dc.b ' d7=$',0
  1042.  
  1043. GWVA_DEBUG_CTE_LOGGER_REGNAME:    dc.b 'VALOGGER',0
  1044.  even
  1045.  
  1046.     endc    ; ifd OPT_GWVA_DEBUG_SEARCH_EXEC_IN_LOGGER
  1047.  
  1048.     ;-----------------
  1049.  
  1050.  DATA
  1051.  
  1052. GWVA_DEBUG_EVNT_TABLE:
  1053.     dc.l GWVA_METHOD_CREATE
  1054.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_CREATE
  1055.     dc.l GWVA_METHOD_DELETE
  1056.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_DELETE
  1057.     dc.l GWVA_METHOD_OPEN
  1058.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_OPEN
  1059.     dc.l GWVA_METHOD_CLOSE
  1060.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_CLOSE
  1061.  
  1062.     dc.l GWVA_METHOD_MOUSE_ZONE
  1063.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_MOUSE_ZONE
  1064.     dc.l GWVA_METHOD_TIMER
  1065.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_TIMER
  1066.     dc.l GWVA_METHOD_CLICK
  1067.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_CLICK
  1068.     dc.l GWVA_METHOD_MESSAGE
  1069.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_MESSAGE
  1070.     dc.l GWVA_METHOD_KEYPRESS
  1071.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_KEYPRESS
  1072.  
  1073.     dc.l GWVA_METHOD_WIND_CLICK
  1074.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_CLICK
  1075.     dc.l GWVA_METHOD_WIND_CREATE_CONTENTS
  1076.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_CREATE_CONTENTS
  1077.     dc.l GWVA_METHOD_WIND_DELETE_CONTENTS
  1078.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_DELETE_CONTENTS
  1079.     dc.l GWVA_METHOD_WIND_REDRAW_CONTENTS_BOX
  1080.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_REDRAW_CONTENTS_BOX
  1081.     dc.l GWVA_METHOD_WIND_SET_VSLIDER
  1082.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_SET_VSLIDER
  1083.     dc.l GWVA_METHOD_WIND_SET_HSLIDER
  1084.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_SET_HSLIDER
  1085.     dc.l GWVA_METHOD_WIND_CALC_SLIDERS
  1086.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_CALC_SLIDERS
  1087.     dc.l GWVA_METHOD_WIND_NAMIFY_UNAMIFY
  1088.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_NAMIFY_UNAMIFY
  1089.     dc.l GWVA_METHOD_WIND_REDRAW_ALL_CONTENTS
  1090.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_REDRAW_ALL_CONTENTS
  1091.     dc.l GWVA_METHOD_WIND_REDRAW_PART_CONTENTS
  1092.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_REDRAW_PART_CONTENTS
  1093.     dc.l GWVA_METHOD_WIND_SET_PALETTE
  1094.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_SET_PALETTE
  1095.     dc.l GWVA_METHOD_WIND_MOVE_SLIDERS_WITH_KEY
  1096.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_MOVE_SLIDERS_WITH_KEY
  1097.  
  1098.     dc.l GWVA_METHOD_WRSC_REDRAW_PART_CONTENTS
  1099.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WRSC_REDRAW_PART_CONTENTS
  1100.     dc.l GWVA_METHOD_WRSC_UPDATE
  1101.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WRSC_UPDATE
  1102.     dc.l GWVA_METHOD_WRSC_IDX_UNDER_XY
  1103.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WRSC_IDX_UNDER_XY
  1104.  
  1105.     dc.l GWVA_METHOD_FORM_KEYBD
  1106.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_KEYBD
  1107.     dc.l GWVA_METHOD_WFORM_CLEAR_FOCUS
  1108.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WFORM_CLEAR_FOCUS
  1109.     dc.l GWVA_METHOD_WFORM_SET_FOCUS
  1110.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WFORM_SET_FOCUS
  1111.     dc.l GWVA_METHOD_WFORM_HIDE_FOCUS
  1112.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WFORM_HIDE_FOCUS
  1113.     dc.l GWVA_METHOD_WFORM_SHOW_FOCUS
  1114.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WFORM_SHOW_FOCUS
  1115.  
  1116.     dc.l GWVA_METHOD_WAPP_LOAD_RSC
  1117.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WAPP_LOAD_RSC
  1118.     dc.l GWVA_METHOD_WAPP_UNLOAD_RSC
  1119.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WAPP_UNLOAD_RSC
  1120.     dc.l GWVA_METHOD_WAPP_SET_RIGHT_PALETTE
  1121.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WAPP_SET_RIGHT_PALETTE
  1122.  
  1123.     dc.l GWVA_METHOD_MENU_SELECT
  1124.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_MENU_SELECT
  1125.     dc.l GWVA_METHOD_MENU_CLICK
  1126.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_MENU_CLICK
  1127.     dc.l GWVA_METHOD_MENU_UPDATE
  1128.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_MENU_UPDATE
  1129.     dc.l GWVA_METHOD_MENU_MZONE_TITLE
  1130.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_MENU_MZONE_TITLE
  1131.     dc.l GWVA_METHOD_MENU_CHECK
  1132.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_MENU_CHECK
  1133.     dc.l GWVA_METHOD_MENU_REDRAW_ALL_CONTENTS
  1134.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_MENU_REDRAW_ALL_CONTENTS
  1135.     dc.l GWVA_METHOD_MENU_ITEM_SELECTED
  1136.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_MENU_ITEM_SELECTED
  1137.  
  1138.     dc.l GWVA_METHOD_WTEXT_WRITE_IN_BUFFER
  1139.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WTEXT_WRITE_IN_BUFFER
  1140.     dc.l GWVA_METHOD_WTEXT_WRITE_IN_WINDOW
  1141.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WTEXT_WRITE_IN_WINDOW
  1142.     dc.l GWVA_METHOD_WTEXT_WRITE_BUFFER
  1143.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WTEXT_WRITE_BUFFER
  1144.     dc.l GWVA_METHOD_WTEXT_CLEAR_BUFFER
  1145.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WTEXT_CLEAR_BUFFER
  1146.     dc.l GWVA_METHOD_WTEXT_CLEAR_BUFFER_AND_UPDATE
  1147.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WTEXT_CLEAR_BUFFER_AND_UPDATE
  1148.     dc.l GWVA_METHOD_WTEXT_CORRECT_VISIBLE_SIZES
  1149.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_WTEXT_CORRECT_VISIBLE_SIZES
  1150.  
  1151.     dc.l GWVA_METHOD_FORM_KEYPRESS
  1152.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_KEYPRESS
  1153.     dc.l GWVA_METHOD_FORM_CLICK
  1154.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_CLICK
  1155.     dc.l GWVA_METHOD_FORM_BUTTON
  1156.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_BUTTON
  1157.     dc.l GWVA_METHOD_FORM_OBJC_EDIT
  1158.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_OBJC_EDIT
  1159.     dc.l GWVA_METHOD_FORM_IFACE_CLICK
  1160.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_IFACE_CLICK
  1161.  
  1162.     dc.l GWVA_METHOD_FORM_CLICKED
  1163.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_CLICKED
  1164.     dc.l GWVA_METHOD_FORM_DCLICKED
  1165.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_DCLICKED
  1166.     dc.l GWVA_METHOD_FORM_RCLICKED
  1167.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_RCLICKED
  1168.     dc.l GWVA_METHOD_FORM_SELECTED
  1169.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_SELECTED
  1170.     dc.l GWVA_METHOD_FORM_UNSELECTED
  1171.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_UNSELECTED
  1172.     dc.l GWVA_METHOD_FORM_CHANGED
  1173.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_CHANGED
  1174.  
  1175.     dc.l GWVA_METHOD_FORM_RELEASE_FOCUS
  1176.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_RELEASE_FOCUS
  1177.     dc.l GWVA_METHOD_FORM_CATCH_FOCUS
  1178.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_CATCH_FOCUS
  1179.     dc.l GWVA_METHOD_FPROGRESS_BAR_SET_PERCENT
  1180.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FPROGRESS_BAR_SET_PERCENT
  1181.     dc.l GWVA_METHOD_FPROGRESS_BAR_UPDATE_PERCENT
  1182.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FPROGRESS_BAR_UPDATE_PERCENT
  1183.     dc.l GWVA_METHOD_FPROGRESS_BAR_REDRAW
  1184.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FPROGRESS_BAR_REDRAW
  1185.  
  1186.     dc.l GWVA_METHOD_FSLIDER_MOVE
  1187.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FSLIDER_MOVE
  1188.     dc.l GWVA_METHOD_FSLIDER_PLUS1
  1189.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FSLIDER_PLUS1
  1190.     dc.l GWVA_METHOD_FSLIDER_MINUS1
  1191.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FSLIDER_MINUS1
  1192.     dc.l GWVA_METHOD_FSLIDER_PLUSPAGE
  1193.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FSLIDER_PLUSPAGE
  1194.     dc.l GWVA_METHOD_FSLIDER_MINUSPAGE
  1195.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FSLIDER_MINUSPAGE
  1196.     dc.l GWVA_METHOD_FSLIDER_SET_POSITION
  1197.     dc.l GWVA_DEBUG_EVNT_GWVA_METHOD_FSLIDER_SET_POSITION
  1198.  
  1199.     dc.l MN_SELECTED
  1200.     dc.l GWVA_DEBUG_EVNT_MN_SELECTED
  1201.  
  1202.     dc.l GWVA_METHOD_WM_REDRAW
  1203.     dc.l GWVA_DEBUG_EVNT_WM_REDRAW
  1204.     dc.l GWVA_METHOD_WM_TOP
  1205.     dc.l GWVA_DEBUG_EVNT_WM_TOP
  1206.     dc.l GWVA_METHOD_WM_CLOSE
  1207.     dc.l GWVA_DEBUG_EVNT_WM_CLOSE
  1208.     dc.l GWVA_METHOD_WM_FULL
  1209.     dc.l GWVA_DEBUG_EVNT_WM_FULL
  1210.     dc.l GWVA_METHOD_WM_ARROW
  1211.     dc.l GWVA_DEBUG_EVNT_WM_ARROW
  1212.     dc.l GWVA_METHOD_WM_HSLID
  1213.     dc.l GWVA_DEBUG_EVNT_WM_HSLID
  1214.     dc.l GWVA_METHOD_WM_VSLID
  1215.     dc.l GWVA_DEBUG_EVNT_WM_VSLID
  1216.     dc.l GWVA_METHOD_WM_SIZE
  1217.     dc.l GWVA_DEBUG_EVNT_WM_SIZE
  1218.     dc.l GWVA_METHOD_WM_MOVE
  1219.     dc.l GWVA_DEBUG_EVNT_WM_MOVE
  1220.     dc.l GWVA_METHOD_WM_NEWTOP
  1221.     dc.l GWVA_DEBUG_EVNT_WM_NEWTOP
  1222.     dc.l GWVA_METHOD_WM_UNTOP
  1223.     dc.l GWVA_DEBUG_EVNT_WM_UNTOP
  1224.     dc.l GWVA_METHOD_WM_ONTOP
  1225.     dc.l GWVA_DEBUG_EVNT_WM_ONTOP
  1226.     dc.l GWVA_METHOD_WM_BOTTOM
  1227.     dc.l GWVA_DEBUG_EVNT_WM_BOTTOM
  1228.     dc.l GWVA_METHOD_WM_ICONIFY
  1229.     dc.l GWVA_DEBUG_EVNT_WM_ICONIFY
  1230.     dc.l GWVA_METHOD_WM_UNICONIFY
  1231.     dc.l GWVA_DEBUG_EVNT_WM_UNICONIFY
  1232. *    dc.l GWVA_METHOD_WM_ALLICONIFY
  1233. *    dc.l GWVA_DEBUG_EVNT_WM_ALLICONIFY
  1234. *    dc.l GWVA_METHOD_WM_TOOLBAR
  1235. *    dc.l GWVA_DEBUG_EVNT_WM_TOOLBAR
  1236.  
  1237.     dc.l AC_OPEN
  1238.     dc.l GWVA_DEBUG_EVNT_AC_OPEN
  1239.     dc.l AC_CLOSE
  1240.     dc.l GWVA_DEBUG_EVNT_AC_CLOSE
  1241.     dc.l AP_TERM
  1242.     dc.l GWVA_DEBUG_EVNT_AP_TERM
  1243.     dc.l AP_TFAIL
  1244.     dc.l GWVA_DEBUG_EVNT_AP_TFAIL
  1245.     dc.l AP_RESCHG
  1246.     dc.l GWVA_DEBUG_EVNT_AP_RESCHG
  1247.     dc.l SHUT_COMPLETED
  1248.     dc.l GWVA_DEBUG_EVNT_SHUT_COMPLETED
  1249.     dc.l RESCH_COMPLETED
  1250.     dc.l GWVA_DEBUG_EVNT_RESCH_COMPLETED
  1251.     dc.l AP_DRAGDROP
  1252.     dc.l GWVA_DEBUG_EVNT_AP_DRAGDROP
  1253.     dc.l SH_WDRAW
  1254.     dc.l GWVA_DEBUG_EVNT_SH_WDRAW
  1255.     dc.l CH_EXIT
  1256.     dc.l GWVA_DEBUG_EVNT_CH_EXIT
  1257.  
  1258.     dc.l -1
  1259.  
  1260. GWVA_DEBUG_EVNT_GWVA_METHOD_CREATE:            dc.b "CREATE",0
  1261. GWVA_DEBUG_EVNT_GWVA_METHOD_DELETE:            dc.b "DELETE",0
  1262. GWVA_DEBUG_EVNT_GWVA_METHOD_MOUSE_ZONE:        dc.b "MOUSE_ZONE",0
  1263. GWVA_DEBUG_EVNT_GWVA_METHOD_TIMER:            dc.b "TIMER",0
  1264. GWVA_DEBUG_EVNT_GWVA_METHOD_CLICK:            dc.b "CLICK",0
  1265. GWVA_DEBUG_EVNT_GWVA_METHOD_MESSAGE:        dc.b "MESSAGE",0
  1266. GWVA_DEBUG_EVNT_GWVA_METHOD_OPEN:            dc.b "OPEN",0
  1267. GWVA_DEBUG_EVNT_GWVA_METHOD_CLOSE:            dc.b "CLOSE",0
  1268. GWVA_DEBUG_EVNT_GWVA_METHOD_KEYPRESS:        dc.b "KEYPRESS",0
  1269.  
  1270. GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_CLICK:        dc.b "WIND_CLICK",0
  1271. GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_CREATE_CONTENTS:    dc.b "WIND_CREATE_CONTENTS",0
  1272. GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_DELETE_CONTENTS:    dc.b "WIND_DELETE_CONTENTS",0
  1273. GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_REDRAW_CONTENTS_BOX:    dc.b "REDRAW_CONTENTS_BOX",0
  1274. GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_SET_VSLIDER:        dc.b "WIND_SET_VSLIDER",0
  1275. GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_SET_HSLIDER:        dc.b "WIND_SET_HSLIDER",0
  1276. GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_CALC_SLIDERS:        dc.b "WIND_CALC_SLIDERS",0
  1277. GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_NAMIFY_UNAMIFY:    dc.b "WIND_NAMIFY_UNAMIFY",0
  1278. GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_REDRAW_ALL_CONTENTS:    dc.b "WIND_REDRAW_ALL_CONTENTS",0
  1279. GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_REDRAW_PART_CONTENTS:    dc.b "WIND_REDRAW_PART_CONTENTS",0
  1280. GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_SET_PALETTE:        dc.b "WIND_SET_PALETTE",0
  1281. GWVA_DEBUG_EVNT_GWVA_METHOD_WIND_MOVE_SLIDERS_WITH_KEY:    dc.b "WIND_MOVE_SLIDERS_WITH_KEY",0
  1282. GWVA_DEBUG_EVNT_GWVA_METHOD_WRSC_REDRAW_PART_CONTENTS:    dc.b "WRSC_REDRAW_PART_CONTENTS",0
  1283. GWVA_DEBUG_EVNT_GWVA_METHOD_WRSC_UPDATE        dc.b "WRSC_UPDATE",0
  1284. GWVA_DEBUG_EVNT_GWVA_METHOD_WRSC_IDX_UNDER_XY:        dc.b "WRSC_IDX_UNDER_XY",0
  1285. GWVA_DEBUG_EVNT_GWVA_METHOD_WFORM_CLEAR_FOCUS:        dc.b "WFORM_CLEAR_FOCUS",0
  1286. GWVA_DEBUG_EVNT_GWVA_METHOD_WFORM_SET_FOCUS:        dc.b "WFORM_SET_FOCUS",0
  1287. GWVA_DEBUG_EVNT_GWVA_METHOD_WFORM_HIDE_FOCUS:        dc.b "WFORM_HIDE_FOCUS",0
  1288. GWVA_DEBUG_EVNT_GWVA_METHOD_WFORM_SHOW_FOCUS:        dc.b "WFORM_SHOW_FOCUS",0
  1289. GWVA_DEBUG_EVNT_GWVA_METHOD_WAPP_LOAD_RSC:        dc.b "WAPP_LOAD_RSC",0
  1290. GWVA_DEBUG_EVNT_GWVA_METHOD_WAPP_UNLOAD_RSC:        dc.b "WAPP_UNLOAD_RSC",0
  1291. GWVA_DEBUG_EVNT_GWVA_METHOD_WAPP_SET_RIGHT_PALETTE:    dc.b "WAPP_SET_RIGHT_PALETTE",0
  1292. GWVA_DEBUG_EVNT_GWVA_METHOD_MENU_SELECT:        dc.b "MENU_SELECT",0
  1293. GWVA_DEBUG_EVNT_GWVA_METHOD_MENU_CLICK:        dc.b "MENU_CLICK",0
  1294. GWVA_DEBUG_EVNT_GWVA_METHOD_MENU_UPDATE:        dc.b "MENU_UPDATE",0
  1295. GWVA_DEBUG_EVNT_GWVA_METHOD_MENU_MZONE_TITLE:        dc.b "MENU_MZONE_TITLE",0
  1296. GWVA_DEBUG_EVNT_GWVA_METHOD_MENU_CHECK:        dc.b "MENU_CHECK",0
  1297. GWVA_DEBUG_EVNT_GWVA_METHOD_MENU_REDRAW_ALL_CONTENTS:    dc.b "MENU_REDRAW_ALL_CONTENTS",0
  1298. GWVA_DEBUG_EVNT_GWVA_METHOD_MENU_ITEM_SELECTED:        dc.b "MENU_ITEM_SELECTED",0
  1299. GWVA_DEBUG_EVNT_GWVA_METHOD_WTEXT_WRITE_IN_BUFFER:    dc.b "WTEXT_WRITE_IN_BUFFER",0
  1300. GWVA_DEBUG_EVNT_GWVA_METHOD_WTEXT_WRITE_IN_WINDOW:    dc.b "WTEXT_WRITE_IN_WINDOW",0
  1301. GWVA_DEBUG_EVNT_GWVA_METHOD_WTEXT_WRITE_BUFFER:        dc.b "WTEXT_WRITE_BUFFER",0
  1302. GWVA_DEBUG_EVNT_GWVA_METHOD_WTEXT_CLEAR_BUFFER:        dc.b "WTEXT_CLEAR_BUFFER",0
  1303. GWVA_DEBUG_EVNT_GWVA_METHOD_WTEXT_CLEAR_BUFFER_AND_UPDATE:    dc.b "WTEXT_CLEAR_BUFFER_AND_UPDATE",0
  1304. GWVA_DEBUG_EVNT_GWVA_METHOD_WTEXT_CORRECT_VISIBLE_SIZES:    dc.b "CORRECT_VISIBLE_SIZES",0
  1305.  
  1306. GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_KEYPRESS:        dc.b "FORM_KEYPRESS",0
  1307. GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_CLICK:        dc.b "FORM_CLICK",0
  1308. GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_BUTTON:        dc.b "FORM_BUTTON",0
  1309. GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_KEYBD:        dc.b "FORM_KEYBD",0
  1310. GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_OBJC_EDIT:        dc.b "FORM_OBJC_EDIT",0
  1311. GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_IFACE_CLICK:        dc.b "FORM_IFACE_CLICK",0
  1312. GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_CLICKED:        dc.b "FORM_CLICKED",0
  1313. GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_DCLICKED:        dc.b "FORM_DCLICKED",0
  1314. GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_RCLICKED:        dc.b "FORM_RCLICKED",0
  1315. GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_SELECTED:        dc.b "FORM_SELECTED",0
  1316. GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_UNSELECTED:        dc.b "FORM_UNSELECTED",0
  1317. GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_CHANGED:        dc.b "FORM_CHANGED",0
  1318. GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_RELEASE_FOCUS:        dc.b "FORM_RELEASE_FOCUS",0
  1319. GWVA_DEBUG_EVNT_GWVA_METHOD_FORM_CATCH_FOCUS:        dc.b "FORM_CATCH_FOCUS",0
  1320. GWVA_DEBUG_EVNT_GWVA_METHOD_FPROGRESS_BAR_SET_PERCENT:    dc.b "PROGBAR_SET_PERCENT",0
  1321. GWVA_DEBUG_EVNT_GWVA_METHOD_FPROGRESS_BAR_UPDATE_PERCENT:    dc.b "PROGBAR_UPDATE_PERCENT",0
  1322. GWVA_DEBUG_EVNT_GWVA_METHOD_FPROGRESS_BAR_REDRAW:    dc.b "PROGBAR_REDRAW",0
  1323. GWVA_DEBUG_EVNT_GWVA_METHOD_FSLIDER_MOVE:        dc.b "FSLIDER_MOVE",0
  1324. GWVA_DEBUG_EVNT_GWVA_METHOD_FSLIDER_PLUS1:        dc.b "FSLIDER_PLUS1",0
  1325. GWVA_DEBUG_EVNT_GWVA_METHOD_FSLIDER_MINUS1:        dc.b "FSLIDER_MINUS1",0
  1326. GWVA_DEBUG_EVNT_GWVA_METHOD_FSLIDER_PLUSPAGE:        dc.b "FSLIDER_PLUSPAGE",0
  1327. GWVA_DEBUG_EVNT_GWVA_METHOD_FSLIDER_MINUSPAGE:        dc.b "FSLIDER_MINUSPAGE",0
  1328. GWVA_DEBUG_EVNT_GWVA_METHOD_FSLIDER_SET_POSITION:    dc.b "FSLIDER_SET_POSITION",0
  1329.  
  1330. GWVA_DEBUG_EVNT_MN_SELECTED:    dc.b "MN_SELECTED",0
  1331.  
  1332. GWVA_DEBUG_EVNT_WM_REDRAW:    dc.b "WM_REDRAW",0
  1333. GWVA_DEBUG_EVNT_WM_TOP:        dc.b "WM_TOPPED",0
  1334. GWVA_DEBUG_EVNT_WM_CLOSE:    dc.b "WM_CLOSED",0
  1335. GWVA_DEBUG_EVNT_WM_FULL:    dc.b "WM_FULLED",0
  1336. GWVA_DEBUG_EVNT_WM_ARROW:    dc.b "WM_ARROWED",0
  1337. GWVA_DEBUG_EVNT_WM_HSLID:    dc.b "WM_HSLID",0
  1338. GWVA_DEBUG_EVNT_WM_VSLID:    dc.b "WM_VSLID",0
  1339. GWVA_DEBUG_EVNT_WM_SIZE:    dc.b "WM_SIZED",0
  1340. GWVA_DEBUG_EVNT_WM_MOVE:    dc.b "WM_MOVED",0
  1341. GWVA_DEBUG_EVNT_WM_NEWTOP:    dc.b "WM_NEWTOP",0
  1342. GWVA_DEBUG_EVNT_WM_UNTOP:    dc.b "WM_UNTOPPED",0
  1343. GWVA_DEBUG_EVNT_WM_ONTOP:    dc.b "WM_ONTOP",0
  1344. GWVA_DEBUG_EVNT_WM_BOTTOM:    dc.b "WM_BOTTOM",0
  1345. GWVA_DEBUG_EVNT_WM_ICONIFY:    dc.b "WM_ICONIFY",0
  1346. GWVA_DEBUG_EVNT_WM_UNICONIFY:    dc.b "WM_UNICONIFY",0
  1347. GWVA_DEBUG_EVNT_WM_ALLICONIFY:    dc.b "WM_ALLICONIFY",0
  1348. GWVA_DEBUG_EVNT_WM_TOOLBAR:    dc.b "WM_TOOLBAR",0
  1349. GWVA_DEBUG_EVNT_AC_OPEN:    dc.b "AC_OPEN",0
  1350. GWVA_DEBUG_EVNT_AC_CLOSE:    dc.b "AC_CLOSE",0
  1351. GWVA_DEBUG_EVNT_AP_TERM:    dc.b "AP_TERM",0
  1352. GWVA_DEBUG_EVNT_AP_TFAIL:    dc.b "AP_TFAIL",0
  1353. GWVA_DEBUG_EVNT_AP_RESCHG:    dc.b "AP_RESCHG",0
  1354. GWVA_DEBUG_EVNT_SHUT_COMPLETED:    dc.b "SHUT_COMPLETED",0
  1355. GWVA_DEBUG_EVNT_RESCH_COMPLETED:    dc.b "RESCH_COMPLETED",0
  1356. GWVA_DEBUG_EVNT_AP_DRAGDROP:    dc.b "AP_DRAGDROP",0
  1357. GWVA_DEBUG_EVNT_SH_WDRAW:    dc.b "SH_WDRAW",0
  1358. GWVA_DEBUG_EVNT_CH_EXIT:    dc.b "CH_EXIT",0
  1359.  even
  1360.  
  1361.  BSS
  1362. GWVA_DEBUG_STACK_LEVEL_COUNTER:    ds.w 1
  1363.  
  1364.     ifd OPT_GWVA_DEBUG_SEARCH_EXEC_IN_LOGGER
  1365.  
  1366. *GWVA_DEBUG_SEARCH_EXEC_IN_LOGGER_LOG_ACK:    ds.w 1
  1367. GWVA_DEBUG_SEARCH_EXEC_IN_LOGGER_TMP_MSG_BUF:    ds.b GWVA_DEBUG_MSG_MAX_SIZE*GWVA_DEBUG_MAX_MSG_DEBUG_PENDING
  1368. GWVA_DEBUG_SEARCH_EXEC_TEXT_PTR:    ds.l 1
  1369.  
  1370.     endc     ; ifd OPT_GWVA_DEBUG_SEARCH_EXEC_IN_LOGGER
  1371.  
  1372.  TEXT
  1373.     endc    ; OPT_GWVA_DEBUG_SEARCH_EXEC
  1374.  
  1375. ;------------------------------------------------------------------------------
  1376.  
  1377.     rsreset
  1378. GWVA_SEARCH_EXEC_STACK_METHOD:        rs.l 1
  1379. GWVA_SEARCH_EXEC_STACK_OBJECT:        rs.l 1
  1380. GWVA_SEARCH_EXEC_STACK_CLASS:        rs.w 1
  1381. GWVA_SEARCH_EXEC_STACK_IS_IN_LOCAL_METHOD_LIST:    rs.w 1
  1382. GWVA_SEARCH_EXEC_STACK_STRUCT_LENGTH:    rs.w 0
  1383.  
  1384.  DATA
  1385. GWVA_SEARCH_EXEC_OBJECT_LEVEL_STACK_PTR:    dc.l GWVA_SEARCH_EXEC_OBJECT_LEVEL_STACK
  1386.  
  1387.             ****************
  1388.  BSS
  1389.                 ds.b GWVA_SEARCH_EXEC_STACK_STRUCT_LENGTH*64
  1390. GWVA_SEARCH_EXEC_OBJECT_LEVEL_STACK:    ds.b GWVA_SEARCH_EXEC_STACK_STRUCT_LENGTH    ; celle par défaut=0
  1391. GWVA_SEARCH_EXEC_RETURN_CODE_D6:        ds.w 1
  1392.  TEXT
  1393.